{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "initial_id",
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import torch\n",
    "import torchvision\n",
    "import torchvision.transforms as transforms\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n"
   ]
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-04-26T10:31:41.278487Z",
     "start_time": "2024-04-26T10:31:40.138229Z"
    }
   },
   "cell_type": "code",
   "source": [
    "transform = transforms.Compose([transforms.ToTensor(),  # 将 PIL 图像或 numpy.ndarray 转换为张量\n",
    "                                transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])  # 标准化图像的张量\n",
    "\n",
    "# 构建训练数据集\n",
    "trainset = torchvision.datasets.CIFAR10(root='./data', train=True,  # 指定训练数据集，如果不存在则从互联网上下载\n",
    "                                        download=True, transform=transform)  # 使用前面定义的转换函数了，如果是私人数据集就把cifar10以及后面改了\n",
    "trainloader = torch.utils.data.DataLoader(trainset, batch_size=4,  # 创建训练数据的数据加载器，每个批次包含4个样本\n",
    "                                          shuffle=True,  # 对数据进行洗牌\n",
    "                                          num_workers=2)  # 使用多个子进程来加载数据，加快数据加载速度\n",
    "\n",
    "# 构建测试数据集\n",
    "testset = torchvision.datasets.CIFAR10(root='./data', train=False,  # 指定测试数据集，如果不存在则从互联网上下载\n",
    "                                       download=True, transform=transform)  # 使用前面定义的转换函数\n",
    "testloader = torch.utils.data.DataLoader(testset, batch_size=4,  # 创建测试数据的数据加载器，每个批次包含4个样本\n",
    "                                         shuffle=False,  # 不对数据进行洗牌\n",
    "                                         num_workers=2)  # 使用多个子进程来加载数据，加快数据加载速度"
   ],
   "id": "8469d35c46641a13",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Files already downloaded and verified\n",
      "Files already downloaded and verified\n"
     ]
    }
   ],
   "execution_count": 14
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-04-26T09:55:39.704511Z",
     "start_time": "2024-04-26T09:55:23.654350Z"
    }
   },
   "cell_type": "code",
   "source": [
    "import torch\n",
    "import torchvision\n",
    "import torchvision.transforms as transforms\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "# 定义数据转换\n",
    "transform = transforms.Compose([\n",
    "    transforms.ToTensor(),  # 将 PIL.Image 或 numpy.ndarray 转换为 tensor\n",
    "    transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))  # 对 tensor 进行标准化\n",
    "])\n",
    "\n",
    "# 下载并加载训练集\n",
    "trainset = torchvision.datasets.CIFAR10(root='./data', train=True, download=True, transform=transform)\n",
    "trainloader = torch.utils.data.DataLoader(trainset, batch_size=4, shuffle=True, num_workers=2)\n",
    "\n",
    "# 定义图像显示函数\n",
    "def imshow(img):\n",
    "    img = img / 2 + 0.5\n",
    "    npimg = img.numpy()\n",
    "    npimg = np.transpose(npimg, (1, 2, 0))  # 调整数组的维度顺序\n",
    "    plt.imshow(npimg)  # 显示图像\n",
    "    plt.show()\n",
    "\n",
    "# 获取训练集的迭代器，并展示图像\n",
    "dataiter = iter(trainloader)\n",
    "images, labels = next(dataiter)\n",
    "imshow(torchvision.utils.make_grid(images))\n"
   ],
   "id": "350661c81d439344",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Files already downloaded and verified\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAh8AAACwCAYAAACviAzDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABPcElEQVR4nO29eZAc1ZX/ezKz9u7qqt4XdUtqSS0EWlgkkFkMwjbywxibwc8bNmBP/H5hBuNBVsSwmImwxoElwn8wzLwYmLGfA3g/D4F/88Ae7MEMYhPGYhVq0II21Nq71eqluvasqsz7/uCR95xT6lI3SCW1+nwiFJHZNysz6+bNrNT9nvM9hlJKgSAIgiAIQpUwT/cJCIIgCIIwvZCXD0EQBEEQqoq8fAiCIAiCUFXk5UMQBEEQhKoiLx+CIAiCIFQVefkQBEEQBKGqyMuHIAiCIAhVRV4+BEEQBEGoKvLyIQiCIAhCVZGXD0EQBEEQqsope/l4+OGHobu7G0KhECxduhT+/Oc/n6pDCYIgCIIwhfCdip3+9re/hVWrVsHDDz8Ml19+Ofzbv/0bXHvttbB9+3aYOXNmxc+6rgtHjhyBaDQKhmGcitMTBEEQBOEko5SCVCoFHR0dYJqV5zaMU1FYbvny5XDRRRfBI4884v3t3HPPhRtuuAHWrVtX8bOHDh2Crq6uk31KgiAIgiBUgYMHD0JnZ2fFbU76zEehUIBNmzbBPffcQ/6+cuVK2LhxY9n2tm2Dbdve+sfvQj/+8Y8hGAye7NMTBEEQBOEUYNs2/OM//iNEo9ETbnvSXz6GhobAcRxobW0lf29tbYWBgYGy7detWwf/8A//UPb3YDAoLx+CIAiCMMWYSMjEKQs45QdXSh33hO69914YGxvz/h08ePBUnZIgCIIgCGcAJ33mo6mpCSzLKpvlGBwcLJsNAZAZDkEQBEGYbpz0mY9AIABLly6F9evXk7+vX78eLrvsspN9OEEQBEEQphinJNV29erVcPPNN8OyZcvg0ksvhV/+8pdw4MABuO222z71vhs+00LWrULRW15x8dWkbW7bufTDelMwuQKE1pVLm8rygQz9h3TqGGnqP9yvjxHIk7acOeItD2XoQd7c/AZZ3/jmf3vLibEMaSuVdIDu3HkzSFt7ez1Zb2qo85bzuRxp60RZReFwhLSBssjqvK4V3vJ/PfMX0vbf6//gLX/v5v9B2pZecCVZ/7f/+9fe8py6GIxHeNFKejou7S8DXUCDpXQZpjV+G9ALb+L9GGaFtsoaJj4OPwZeddn5KLRaNswqHpEymZQ1sl/2vfDaifept+BJc5ZPP1qGXnyi4l66Zs/3ljOpMXqEUslbNpVD2pKJEbKeQOvHRhKkbfeHfd7ykSNHSVswFCbrl12mx+w1K/8P0jZ3Xo+3HKurIW0mei6MjdHj79vXR9Zff+M1b/m1v7xE2saSQ95yTQ29L7tRXwEALF50kbc8f/4i0hYO63vfHwiRtkKpSNaz2ay3bLKHo2XpQVoo0GdaNkefTUcO7IHx6Ix2o2PQ5wsYdN1FI9Fw6L1vojFh+ei5lkoFsl4sonWDjVF0L/Kx7pToWAuGxp+dtyz0M8ruJwsd0ynYpK1oZ8l6ydZ9a7j0+ihXnw9O0AAASKVSZD0c1uPZYfflX/7yst5PPkE/F6CvA0FLf+dchvbrBd/+NnxaTsnLxze/+U0YHh6Gn/3sZ9Df3w+LFi2CZ599FmbNmnUqDicIgiAIwhTilLx8AADcfvvtcPvtt5+q3QuCIAiCMEWR2i6CIAiCIFSVUzbzcaoYGOgn61Gf1qVGRodJ28xmqk8G/FoLM4Bpjkj1KzG9jb+jKUPrb8Mpej6JjI4BiflrSZtT0scsFeg+C1mqMZZyWmOzHLpt0K8NXJwM1Rhdm+l2Af2dGxsbSRuOY8hkuG5ItWbH0N+rbQbVPxvrdRyO36LmMoFAgO6XhZaMh+vS/uCBNwYJllBsU7TOYkW4Juu6OK6D70e3lVkFl50Pin/genZea7SmS7VTs0aPEdui187H+qBSDMhk4kMqxXyQczvBURRWynl/AOv3CgQCejz5YzRmqYh0cIfFG9RE6P2Fx0zRoefT1qrHqJ2nmnk6Q2OhRob1WB8bo3ElhYLeNp+n/eE4+rlxbGiItPX10ZiPgQEdd1Iq8bGu91ss0rZMhsYJ9PfrrMJgkN57DY1t3nJdLE7afD461mpq9HMiVkf7NRTW8SI8Vs5xSmS9UsyHD421QIjGoJQU3bGNvrdiQXguuqcLefqs9vnYqLVwLBaLG0P3G78LXBYE4lQYzgrt18/6Fd8XPG6NB5oY4ywDAJiWfqbw+Coe81FTo2ORGhvoM7+pqdlbPnxwdNzjAwCYRoXn30lAZj4EQRAEQagq8vIhCIIgCEJVmXKyy/6+3WTd7+r3p1iIpr41sqnGSFBPJ/pMP2lToKf58nk6DYtTzQAA7FLSWx5MbSFtrl9va6s60uaAnu4dHUuStsGj+8l6FqUc2nk6zYYlkdFjdHrXADo1XXJ0KtzCxTT1GKelZbNp0oanYQEAsvYhb7mphfYHTnf74INdpG3R4oV0Wwv37fiptidKbcXTgDydVlWYLuT7neh04gntglG7xeamt2163Vs+sK2XtC3/4pe85fpzaF+BTafcTZx+yFNkT0kB6MrHIOoWm0K2JiEEGej/QDzttYDSw8fYPXPsKJU8j/Yf0ctDNAXeRin5NRF6DC5BjIzoe2rnjm2krRbLE/V0/OKxNJag55rO0JRU3HfBINUi7aK+h+vq6DOkvp5Oo2PJamSETqMnk7rvGtB0OwBAY1MDWW9tbULHoPJNNKqfmxa7X4olKrtUIoulXSZN+iP0mCb6aeLSE769XKZdOHwdSzRMtjMMLNmUO3JjLEufQ5m04ug2LhcbKD2cp9rizwFQGbOs3iv6HtyUk69jGSbI5S10vcotJPgh9QanosK8zHwIgiAIglBV5OVDEARBEISqIi8fgiAIgiBUlSkX82Eommo2PKxjI/YdpLrhRj9Nw6qPa402GKQxH8EgSrsyqRbH4yGKrtbUiuoQaQsacW85EO4kbSWl9bbD/TtJ29HBA2TdcVBqFdMxs3mtXZp++j0Mk247MqJTBfd+SNP9TEtvGwhQDTYcoft1XK1hH9hL9eyhUV2JeJ46j7TV1ND9NsaRvk2dtOm58VgMnqaGKHPKn6Bl+kftE7NQN3mV5gqxIxbQcWcP61iE1H4aszSyX8fItJxDrbNdfoyKMR96fTJW6xXhojDfMVovuwaTOAlstV0o0L4bGtLp87t30Hvmg+1byfrRAd3PuRx9TgC6PpEaGhvW2t5G1uvjun14iBbI3P7B+97yjM4u0laP0hpDLKd8ztx5ZD1Sq49Ry1JbDxzc6y2Hma13W2s7WW9uwuv0nj02pGNAEsyKPhanx6ypRbEsMXrukQg6Bx7bU5h4LEAePUctZvceqKHxM34Ux2DysWTrZ4Hp0uO7Lo1BKSIb+cQYfeDkcZouO4Y/QPsygq4nTj0GAPDjFHn2nDJRGq5b1kYh9zSv0ICeYyWW3hyPx8k6Tt3OsZIaNv7tYM9Y0xh/LkJSbQVBEARBmPLIy4cgCIIgCFVFXj4EQRAEQagqUy7mwzSphtXUrLXLZIaWyn7zXRrjsOBcXQ6b51E3NGjNMRSm72Qffki15kit7rZkmubWO2kdd3LxklZ28lrzGxqkcSTBQAdZ70Ll7n0+qj8eGdDfyy5SLXdkjPZPMKS/J3cs96M4j3CE6piuorpiYkxr6CWH5qvXRPX3Mvw0HsQ16Pc8d77Wvne9PQjjYTErZGUwa2Qk0pa/QSMPkBPZc6DjmKpMaNVtJ9gRPh9u3R9r1OOg+1zq5dE5Zy7ZC4ZbWWPtm58OXlXcJv6TpuifKG4DtXNdvoJ8XAb2ExgeoiUSDhzQ8UR7PtxL2/bTOKk08sapFHSSZZ4bmQwdoy7S1HkM1a6dOt7LYfEFbR0zvOUZnTTei5crwFp895zZpK33vU3e8uBRGnMSjcbJOrbL9vupf4lC94Hlp2MyHqf+IdhSPRSizxs/8vFxmaGLxatUVKCEfC6KBVpmgA/oAPJ7UcxnSaGYvHSGPm8SSbo+Mqo9W4aZ5X2xqL+Lz0fLQETCtC+xA77N7PBDfv17UFdLr7MPnfuJCw5MrJxDkcVF8d+yujr9G+RyvxIfvmDsOcHWSYzKZG7oCSIzH4IgCIIgVBV5+RAEQRAEoapMOdmlqZGlyTXrqU6eTsYr4I6M6Wn+XJZN65t6CjVcoHOJR1GqJABAOK+n1g710ZS+wX16SvfQB++SNl9AT6sNjtCpXitIJZqOLi1PxBtoGlpzq/5eH+7bTNoO9VO797YW/V14emYBTYMqlw6FgI/2cx5V3eXTfo7SU9GJ1EHS9v72t8k6ZCdmx8wrUPLKljSFlssMWJ9gWhOD7tVia6i/eNVWnnqLq1cymay+XadD7ux9i7QdPqClg562WaTNF6TXgHzPE1gjnxQ+xT4n48acy+n0v0SCpkMeOqRT2QcHqUyXZWmEDkllZGmNRMOiJ8crOu/dqyuzptL0fOIN2pa8bcYM0tbQqCvytrfTlNgIq8CLx3M9u7+DYZ1m2vsufYZEmBV7PK7PJ1JDrQZ8fr0fw6Lfua2NphfXRvVYCwTos8BCn+VT/MYkErtdlPbK72d+TbDUbDNb9AySzXj67ACz3B8e1lILl9dA6WP4/ZWljEBQy9KFJN1PBknCNSwNN4is/P3sGoBDj+mWdLvPoNegVESVsZkkk2bfC8snPA03WovCFEbp867smYaWTyQ7fxJk5kMQBEEQhKoiLx+CIAiCIFQVefkQBEEQBKGqTLmYj2iIpkQF/DqGoHNGE2lTBtUKjw1ordDNUdtix9baYCTG3skMqtceO6q1uoM7aczHrl5dyvs9ez9pM1H8AS5DDwBQU09TbQu21g6bZ7I0sDq97RKWzmsU6LnX+HT6sXKozhqq1du2NdeTNovK6RAG3QeHx2i5ctfW6qBdoDEd2AoeAEDlJliCu4J9OABLLWU5qdhxOWDQ43GN2kHaKrdMJ/bhk9A8eaprIpPwlmuj9FrORaXMG1icQo6XL0fX71SUuJ4sxNKdW7FP4vTcor6fDh+i5Qr6UdzWaIKm4RZKNOVbgYOWKSUHpWaz29tiWnw+q+/pAXY+QZSqGK+lz4UIKl8eYbboQZbqapg63sCqbyRtPd3aZj/DUudtm8YJ1MX0Z6N1NH02jMrUOyzPvi5K7/dwUH/WZ9KYJUDxGQaw+8msHFOFMZENuY/l6GbTNEU2h54jwSC9Z0rofFIZGvMxmqDptKlUwlvOZ+izCA+DQB2NlwlYzEIdPbvtEovVQM+fJIsHidfpeJ5AkP7cKrYfZekxg9N3AQByuYQ+b5umigcDdPwOD+l7xmLXyy3qz/rZbxCPw8EZxafiaSMzH4IgCIIgVBV5+RAEQRAEoapMOdklm6JTTvX1OkUsWkdT1hrydGoxFoh7yyG3mbTtOahT2j44SCuP5kp06ko5ekouN0qnzkoZPU3qFOlkVQhVSvSbdIorcYS6N76PPntpE02L86O0vZFBOu04p/0cdq66TxridGox2qLfPTtYtczsQTp96Vd628WzaT8fOaSntGfOWETazpt3EVkvJXX/bNxL04QxZbICl11w5Vo2KYjNUB02LcvT28INWsIqAk89Q66lJ3Q41VgOnfQf6tfToHV11DnxwsU6pbqhfQ5p23SEnnsJOWpWPJ+yErPjb3qymEyFTM7RAS0NHjl8mLSV0L1nWlwOZRKaGl+WUqhyLv8cl4zwUYo2lXb6D+rz69uzh7SlxhL6XIrMwZNVn8api0E/lRXqY/q51dZK5dhjQ9ROADtzBoNUKrCQzFFizzCXjVEbyaEhP5WMLCSRKOZwWpYxW4H6ev29AiF6rsCkL7ugnxPKR697Y5OWKhNj1AE2b/N0WqQdsKqyLnJqbm6kadNcituxVVczdpjS1DW721sedum5NtTrVOjGOH1ugkl/frF6HGCOqy6Sj1WSppw3NNH9mmh879tLf8uwvOX3jS/rAgA42LV5Mhd6gsjMhyAIgiAIVUVePgRBEARBqCqTfvl49dVX4frrr4eOjg4wDAN+//vfk3alFKxZswY6OjogHA7DihUrYNu2bSfrfAVBEARBmOJMOuYjk8nA+eefD9///vfha1/7Wln7L37xC3jwwQfhscceg/nz58P9998P11xzDezcuROi0ehx9jg5urupLp4vag0rk6Ua+YyuFrIeAV1B1Ek3kLatu3QlyQMHqKZm+Gg3hVE12Eya2/KiiqpcbDewdkrb/CxdND2ktcwdm94gbecsXuwt79lO7ZdrLHo+ERRjMGzT77Hk4vP0fnZTbbu7qYusN/m1Rhsv0v18+fO6X2ONVKOu99PYmlKQxuyMBw9T4KmTWKY32dZ+pGe/9eqrpM0t0NTo5Z//irdssfRDE1eAZHEBih3TQjEPFks3BpRuvHDhAnquQb0fy0d11WCAxgnkka192diqQGUD7InbY5ddFdInZVdownsd6Nf3WyBIY2IaG/T4GR2mcUiWxauv6nHJY1BwjJBi2n9Z4AKKE+D3aQal4b6zaRNp+8z27d7yueeeR9pcfkySAsmqGaNzDbCUyzCvOOvX246O0BT40dGEt2yzlPehYZq2bKPYlihLIZ47Vz9z5/XQ52+IpcFWAldYDbDPheviZL2A47ZYnAlOEQ3wWBr2/2m3qK+ly2IawijuxM/2wyuAZ9F1d1mZ6DFUSbeOxXEcPabHto/FkfB0bFIwgn3nIjohl8VT5dnzprFZx+8dPUrvmZyNYqhYzIdS9Evje8iESZQvniCTfvm49tpr4dprrz1um1IKHnroIbjvvvvgxhtvBACAxx9/HFpbW+GJJ56AH/zgB5/ubAVBEARBmPKc1JiPvr4+GBgYgJUrV3p/CwaDcNVVV8HGjRuP+xnbtiGZTJJ/giAIgiCcvZzUl4+BgY+kgtZW6rrZ2trqtXHWrVsHsVjM+9fV1XXc7QRBEARBODs4JT4fxys3Pp4vwb333gurV6/21pPJZMUXkKFjdGak6Op1h+nMgRAtP22aWu8aG6b54IkxrYmWivSdzA9UD0QyIhRsVpQdaX4Gs73Fuf22TfW1kk1tlH0B/V2O7N5K2vJJre1aisZqNM+gMRaAzn34GNUGQ76Z3vL+fb2kLRqk37mpJa4/B1SXX7RAe4uEa+KkzTKoVpgCGnMxHjyv3FJMy0WrFrN4HurTnimHdrxH2hprqNbc+9//W7chW2sAgDlLlnrL/hoaI1Ri+fz4FA7u6yNtPjQsgwbt1337jnjLi1p66OcM2gcm8vngJbfx/yPKMvLLrM/1FsrgWyOvDKZt89gaNe4KTEohrkP+PLx8enJs1Fv2M/+JIIsPKRX1ZxUT7UvYK5qXhTfHv095bI+J4kpSqRRp24+uO/9fnY/p67mcPlenxGz1s/pZkM3SYxw5fJCs925+x1ve8+GHpG3wqPZPOYqWAQBGRqhfCO4fH+vnuXN1TNeVn72CtC3/zGdgojjIa4R7q/hZXJ1pYo8Sei0V8ufgJSMizD9k7Jj+nqUCfVb6a7Wl/LFjNF7GZBbzjU3axt7g9x72bAnTMTmKvF8yaXota3jMBxmHdNyVSjpWTjn0GcrvNTem9ztj1jzS1j+oPYcyGToGHNbPLlq3jMnEhk2Mk/ry0db2kRnWwMAAtLfroJfBwcGy2ZCPCQaDEAwGj9smCIIgCMLZx0mVXbq7u6GtrQ3Wr1/v/a1QKMCGDRvgsssuO5mHEgRBEARhijLpmY90Og17kK1wX18f9Pb2QkNDA8ycORNWrVoFa9euhZ6eHujp6YG1a9dCJBKBm2666aSc8N49R8h6IKKnp/IF+nWKRSplRIN6umroKG1zUEqdwbqlyCQSpdD0N5ueC0f0LE6AVbK0UIqUU6DT/6yILFhoGlKxyoSFMVSBN0z3c2g/raQbadbThe0z46QtHtHW9KpjFmnb+gFN4U2idEifS6c2z1mi5a05jXSGyy3Q1N9UhtkfjwOvPsuVA5ya7ObodObrLz7rLaeHaaxRk5/KJ8f26b7sYqnZuza95i1HGqj98iwm0QwcPOAt797yPmmrj+hr9NyzG0hbvEn3V97P+q6R2iaX/GiKmVWkNND/I06USoqnvPlsKk7hNXmns2tSKdmXSzaVwDb2Y0hmAQDI5fWd0dAYJ23FIk3bPjaY0CsuK4mAUhe587vFpvwtlHZp+HiFV70fi1Vmjdbq+ykQoPvk4zmIUmjHmLTy9ttvessvv/wyaXu3l96X+w/o+z2dovdWEVm8lylvXBqH8aWmgaP6mfvBDurZNHiMpnK2tIxvp1BCvuSFArWfL7IKrwZKc/eZtJ8zGS2fcPv7OCuxUWzQ8laal+pGEmOepSLzSrHRqJZowuEa0lZE9168gabrjw5rOWdohKY3p9kYCQb0c4JbnRcK+toaQPuO2+HbyAohyI5hhvS5u8yaosSeG1gyt8yJ388TZdIvH++88w5cffXV3vrH8Rq33norPPbYY3DXXXdBLpeD22+/HUZHR2H58uXw/PPPnxSPD0EQBEEQpj6TfvlYsWJFWbAQxjAMWLNmDaxZs+bTnJcgCIIgCGcpUttFEARBEISqckpSbU8lo8NU7wrbOv7AABr/kE3TWI1cRqdg2izjE9vgcs3cYTEfRWTRXbDpLJDl09uGI6x78aZcS3ZoWnAuqzVI16FaZRClwXKNczSZIOvpMa3r5VNUn923W8cmtLbTeAO/RVN2cyjOw85TPb0+rftrhkn1UIdFs9gwMTvmspgBk6VRI712x9Ze0rZnq7a9joboNdh/iMYMYR/lrtZG0hRAls+/+68XSdu2118h6/URFAeTZmnTQR1Ps/9wgh4exaDs+WAnaZt9Pk29xSmgiQSNd8C2/uFamu4XiNA+9/vQPaN4TAOKHTFYrBMwz+lKTEIiPnRYx8uk01SHdhx9HxgmvS9tm/aBiccIm5zFw4nHO5RZ+aPPGsymneyW7ae5WZd657boTpE+t/BRP9y9i7Q88ZvfeMsb36DmjCnWPyUH2WXzc8WxPexcTRZHgTvBYTFCDoqfGU3Q9MzBYZqiWinmA59CqUSfIXwdX3eerl+0dV+ODtPzyaVp3MusLm0nkKyj46V/UKct83Rrf4DeM5aF7i+WTltXo+3ogyx9FvdlkaV/+1i6vg9dL2Wxa4nii0pFNmKLzIodpasbPF0flcmwWKxIIc9KX+DzKSsP8OmRmQ9BEARBEKqKvHwIgiAIglBV5OVDEARBEISqMuViPuws1f9cXPKaWXAXWKxGoYS0eJPmleeQvTnWFAEAwGFxHcgi2zCYVonszsttm5FlcJFZKrM88xI6pqvoMXBuOy83bfmoB0c6pXW8JLMQ/tPvn/KWw1Ea4xFrmEnW48hjIdoQJ22hY/q7WLtoXEk8QvXRUG0HTATuP2Fa9A+j/VqvffPF9aTNzmrdNxCgcRz+CNWkE0PaB+SJf/8NafvOLTd7y5+95ALS9vA//19kvWdGm7cci1Evkbc36X6PNNJ+Dgb1eLYH95K2zHaqwe7YoWNCtm7ZQdoCPq3fxtuo10AEWeMDADR3dHvL5y6h9tjhOh23UOSBE5Ni4kEfxaKOoUqlRlmrvocTCTq28izmw6rwNPMh7w7u68HV7CK69xSznDaQ9m7nqcfEkUOHvOUCu5/9fubrk9Of3fwu9e7o3azX0ylaTkKxZ4GJbhST3TSKXD8eBEPXcbl7HtljoPgDR9HnZpLFmFUC94FZFoNCn90l9FzDcS0AAAF0LV12fUZH6PiZO1tbw4NLj7lzl46f8QdZLBr7LUmn9Bh1WVsb8gDhd4yDYiX474HD4ijy2PuExQwBitFxeNkDdj5+FNfhuPS3LBjR8SnhAo0XtDNsrGHvFevTPAuOj8x8CIIgCIJQVeTlQxAEQRCEqjLlZBc+J5ge09NhqkTTrFJJlpYb1tNjTW10Oj5fp1NNB3MJ0hahSgY01On9HCnSqaqhQVRl1+G2t8jOlzn91rOp+tkztDyxeXsvacshq90smyqrCVNZAdsYj40mSFsKTenm8odJm+XbR9Z9yCo+EqVpwbFWXURw9lxqO97Tcx5ZP3febJgQvPIom8UfPKKnuHPMkrsLTbWet4zWFGqbQeWkl//0R2/5wCEqZfT26lTkufPp96gJ0WnajjYtpxTZGFXIFr0FyTMAADVKXwN7aDdpO1LoJ+uZUS3fjA3RCqZ4qhVsOmDtQZpOO7BLf89chuacX/K5L6GdfvKCj9xOvBLZhJ7+dljl0SxK/xtL0DRTl1WDxf+TCrJU9iiS/wIsHTKRpRJJJo1TFenAq/HroxgsPfSdt97wlvv76bWb3d1N1geH9LXctJnKLsmktlsvTwMe/77wGeOnBTvsc+Xr+HO8mjHeL7NeH6DfsxIGlhm47MPsxAFJ2y5LUQ0F9PWb002rtjbH68h6DF33PKowCwDQ3qrLKaQy9IFsWXT8WEgGKfBzxSUJWAvtORoy4LD9lJDMETCZ9Tqq4Gzn6O8aU57AiiCJkY1fx9GyS20dtVcopOl9UChqmdOcRLmEiSIzH4IgCIIgVBV5+RAEQRAEoarIy4cgCIIgCFVlysV8/PX3v0XWU0ivTY7R1LtsgsaANDTpNMLWLqZ32VrTT4weIG0+i3mxKy2y/dfTb5Om4WPa7le5vKy21ipDLLVrTmcXWV92/gJveXvfFnauOC2YnlttnMaymCEdAzLIUm3xu2ckSPXIdIpui9PAcqP0nXXgoE4B3bud6tfvtc0l61/98vXecl2FV1+LpfQpZiHcMVNr6MuvuY60NTTr+Iv2+eeQNm6bfClKeXz+f1P92s7o77z9PXoNXJZ+XVD6Wu89NEjaIl2LvOXaCNWSS0e1rnpo7Chpqy+1kPWGJv29auNx0pZI6rEfZ2mdTc3MNh7p4B++9xZp6+jS/dW9+ALSllc0HgNn+BkOs46eRGbesYM6bTqZo+XlR5GdOE6HByiPE8DxGQZLpw2hGB2/j6Xk5+j3wnp/czN9TgRRYm6OWZ3v36efG73vv0faGlrofp5/4QVv+c9/+QtpKxZRLAnT7Fm2KIki4OnpFokbYBbcLF4F74nvRzmoX9nxx0Z5avT4GIoElhB8JrdQQJ8rs4LXjW3tM0hTeyNNMx87plPpa8P0vrhk6TJveZCl6KZZXEXG1v1lsHgQHxprhRz9DSohWwSX9TmPZTGIxz0d2z5k06BYjIfBrNj96FnOY4RcV597MELjDGP19PxGxvTvp1tkv4EnAZn5EARBEAShqsjLhyAIgiAIVWXKyS6XLl9M1nMoz8i26VS9k6PrAT+q8uin02p5W09VHT1Gp2FdoNNRuCporImmqDa36mnj1kaaVpkZ0xJRibmvNtZTt7k4csJsbqHT70Zi2FsOBNglZNOicZQWbNts2tzV51pi+aGhMEvXxFO4rFKiD/VPMUdTfw/t2UrWxwYv9Jbr2mjKLsbgc4vMybUurqcMl332arotmmosBNn7NZvCXbjkfG9519u0iuw7b2sJiadcFmw6JrZs1dJTrkCPMXO2nu71sb4bQ+nO6QSVFTIZKv91dmlprjZI+24grWUyO0rTrRU793id/qw5kCBtu9/r9ZZnn0MlKzNA91NC14hPx5uTSLVNI5fMdJbKLiWHV4PVKIufjz5myqH3fhhPeafo1LiTpfdFXZ2WpWpD1KE3jRxYkzl6vVJFfcz3t9Bxz6tYP/6//h9veWSUVmYNIEk2X6DjjPczdmvlUqCDUjeD7Hvwq2Njqafs/6TjX0vH4fLN+JjIgpZXsVVMgrDQfery9GLkhmoxW1vDz+0N9HG4M2gYVaOdW99E2vLMgXoYpXkn03T8FGz9XM/nqDxh53B1ci670GMU0fjx86rIJT0mLOYGa5r82aTHs883vpOsy56p4Vr63Ig3aqkwPUJ/504GMvMhCIIgCEJVkZcPQRAEQRCqirx8CIIgCIJQVaZczMezzz5P1g8N6PRExVxvfS5LCT2g067yOaq/HRvWmt6BIzTl0WL6+uxunT6aTFL9LxDRMRaNrIJpW1xrbIOHqIYWrasl6y3IBnzuPGpZntmq0/iWL6dVSYsFZjkd1Jc4zHTf/UpblHM9FAw6NEqu1mC5Dq8c3Qd+9jrrFKiuGPHh9OfxYz5OBNZLufGviWymLe7azPTrUG2Ntzxv8ULStmWrTqMOB6iWzORaUk3T76P9PHh4v7dcG6RxQA2NOnYlGqH9kUvSdGenqLXcUoHGGygU41Bk6X5OWYVV/V26ZtIU78MD+7zlo/t2kbb2njkwLjwH1JyEHTOKg+GVWYNI+y6x+AeT6f24+mmBxRD0jyS85SaDxuTMaqYphyVTxzslh1kKZkH3bYHFInR3zfKWL1i6lLRtfON1sr5jp7a4jwTpeGlu0anRmSwdd8dG6LPJh/rHYJVH89nx4w0CFu0DXMnbNfhNg+zDy9JeeQ3c8VEwfrwBj3+w8HdhD3ackmqy72EaLM28TZepyGWp9YI/rPvdYHbmYZYrjhN48zzWJ50etw3Hsjg81Zalp7soPoVXRXZCKAavrBouSxVH916YpRc7pFow/Y5+dl+EULXeXIpWlD4ZyMyHIAiCIAhVRV4+BEEQBEGoKvLyIQiCIAhCVZlyMR/LlnyBrO/e9f96y1ve307a2huoP8aWTXu85eFj1I/Cj0rRK4PGX8SbOsl6AHQ8RshPdbtUQWvERw4dIm1hlGMdCVMtd3CE5vr3Dye8ZTtPtcJcWueSNzVR6+wgi09p79Dl7t94i1rBjyJrZB/3AWD6nwJky8us4XMol72xKU7aLlhIfVliUep3MB7cWYDbBOP18jYUQ1Bi79csCKRg6utXy/rSF9HxIDlmwa0K9LoHTOTloej1Sg5p23azm8YBNTbqY2bTVC8eHaY27aOH9H6OovEBAOBa+vjJFPUaGByk28Zn6mu74PwLSNuRDRu95Xdf/zNpW9lKrat9NfqecRT3m5l4zEcoou+FYA29L1JZHWNRYnEcRRYLUEIaOo//wt4v8+ZQS+4eFKsBANB3WN+LhTEaJ2CjGIfzzl9C2r7//b/2lq+++nOk7dCRI2Q9FtO+Pk6exlAVkd5vsFgNFtYBJvpeAXZfFlAcR5H5noRM2s8+5JlSAtp5CsXhcCtv7iNRiWBEP1e5ZXoowCzLUSyL4lFdaJX7g4DDPG2atFdFTFEvjwKKsUgk6e9BkXki5dA4LOTp/WUhvxsclwVAY7GAXQNu64+/V7FAv0cW+QEViizmjsWAGK6OD3HYtgVk2+4obmlPB1dtbdxbnj3vXDjZyMyHIAiCIAhVZVIvH+vWrYOLL74YotEotLS0wA033AA7d+4k2yilYM2aNdDR0QHhcBhWrFgB27ZtO6knLQiCIAjC1GVSssuGDRvghz/8IVx88cVQKpXgvvvug5UrV8L27duhpuajKepf/OIX8OCDD8Jjjz0G8+fPh/vvvx+uueYa2LlzJ0SZ7fMnoSZApZTUiJ4q8qk4aXvvnb1kPZ/VU1A951IpxUVzXocP0+nuulqauugWdZqsnaRyiVnS01oFh06r5dFUXiFIpz3To3RKLrZ3H/ocnXptQSm8g0dZJVSW3rt394fe8rvvbCJtw8Papt0x6HuoYtOi2H49FqXSDnZiD4fpkOrs6iDrJZQKzGfGMTz1DtT4Fs+KiTR4wtIsq+pIP1tEU6ZNSKICAIg16mnafbv3kLaIQaeJsf26BXQqWBW1nJJK0PHywYCWvgaO0rTO2XNm0/NB0tj2A6+Sts5ZuspvRwNNHd29g8qRvv6Et7z0Gpo+u2SpHmsvPvcsaVuwh9qtzztfp5OWXR6eul2Bukad0scr1ZZcfT78GGmWUoyzzP0szT4e0vdbY6yOtNk2TWtM5rTU4mNyQFtj3Fv++te+Qdq++IUvesuhAC1PcOVlV5D1FxY/5y1vf+990uai50SR2XX7WHqkW9DPDYfbbqPqvSXWr8pkaZZB9D1dZn2O7lS/nz4X/IGJ//81Got7y7xcQU2E9pdJ7NXpfkxkVc8rw3IJFh/HZMf0IW2OP+9Gh2lqqYU+W8sk87Srr4HBnmq4zIBTYKUCWD9j63NVpL8HeRdVmOVpyT6eNq2fN06Jfmcbyy5Ax7afpRu3o9+Sc+fOJG077U+fejupl4/nnnuOrD/66KPQ0tICmzZtgiuvvBKUUvDQQw/BfffdBzfeeCMAADz++OPQ2toKTzzxBPzgBz/41CcsCIIgCMLU5lPFfIyNfWTM1fD//0+rr68PBgYGYOXKld42wWAQrrrqKti4ceNx92HbNiSTSfJPEARBEISzl0/88qGUgtWrV8MVV1wBixYtAgCAgYGPHERbW1vJtq2trV4bZ926dRCLxbx/XV1dx91OEARBEISzg0+canvHHXfA+++/D6+99lpZG9fzlFJlf/uYe++9F1avXu2tJ5PJii8gOz6gAa4OikXoRro3AMD+nX1kvYj0rgVLaApoqaB13z5mK50YpvpbwNTavMpT/S2IvqePabAOslEusPSx+lYaGxFv0rEtyWM0TS81rOM8Uik6UzQyxlKIQeuBXPPE+mhjC01D65hF0w8P7tGxIyWblj2vr9MpmDazBR4cotrgOT2LvOWjQ9Q+nJ4c1XL58MHjyWDxBdihu0yDLXMB1xunR5idOfoupRIdA7ZJ9xvyI6vmUA1pm9Gk16M+GgfUfO4Cb3nOZTQOaW7XXLIeRmmO733wIWkzUZrlyhtuJG3qD1RPP9Kn41eOHdxH2hZedJG3vJUFim9nZeLn9OhzNwI0jqI0CXv1dElr1H5F75mAH+n7RTomHB9NLS35tIZey2y365AunhihsTUjBl2fNV/HtixaTmM12jp0mu4lyy4hbRZKT1clOj66Omh673k9+hi739tC2rAS39BI07/HkvSRfSypy0LYiqZqu2i8KGZbX2D3l4W29XHLckufUX09Tbfm6b2VCKHyAWX/62VxHQaKx/CZPO0fxVGwWBYweCqwPj+HxUrgigA1LB6RW7GPDul4DZyWDAAQQn0QraHxcC56bqRTzBKAx3ygfua54g4aTzyuxR+g/WPn9TiwWIwOjm0psLgSK0RjQPIllLrOSkYAyxL+JHyil48f/ehH8Mwzz8Crr74KnZ36gdnW9lHdioGBAWhv18F7g4ODZbMhHxMMBiHIgi8FQRAEQTh7mZTsopSCO+64A55++ml46aWXoLubzjR0d3dDW1sbrF+/3vtboVCADRs2wGWXXXZyzlgQBEEQhCnNpGY+fvjDH8ITTzwB//mf/wnRaNSL44jFYhAOh8EwDFi1ahWsXbsWenp6oKenB9auXQuRSARuuummk3LCb7/1JllPjOhpfaXoFH8mmyDrRVRVMJ+j712Gi6bnirRbClRJALekp6ew8x0AQAFV3vSxaWEXyQO8iuKyCy4k613z9IvdgV29pC2JpJU0c+JLMbfEMHLe9LO0wc5OLfWcdyF1a7zsSjrd/OoL+oXyL6+8RNqGjulj5mqo5NA/QCWjFVeu8JYryS48DdcoS+VEi2yGH6cN+9jrtcsqQL731hve8sbnXyBtdkpve8myS0lbDatyu/M9LVFEW2jl2nnn6NnBSJhOgy659LPecngGrV4MRTa9i6ZwL7n8KtL2hz8+5S33J+mU8cr/85tk/T8e/Rf9ud//J2n7q1v0jOXlV32etL3y/B/J+sBB7eDbPvc8eurcebICaZQaGDLpGFVKf2fLz9wrA3SstTZrSaCQpCmqBrruOFUTACDWTCXHz31Rp8yu+OJ1pC0U1tPqm9+mqetvoqD61g460xtviJH1K67S/xkbY5VqN72ux2RjHZ3GD1p0qn4srWWXDJMg8KS6Yrold07FjqNhlvZagyo/R1jl5bw9ifl35C5c9mxkugtWFlhWMDhFJEGwasqWn15bE1fnZlIplmx4SrWf7WcUOVCbLJU+gJ4FAT+XoVAKPkuJNX30N8CwsGxHJRFcEdfnH9/JFgCghOSS2hh168YpzEX+w8bknKER3T9DSSq1A/0qn4hJvXw88sgjAACwYsUK8vdHH30Uvve97wEAwF133QW5XA5uv/12GB0dheXLl8Pzzz9/Ujw+BEEQBEGY+kzq5YMHuhwPwzBgzZo1sGbNmk96ToIgCIIgnMVIbRdBEARBEKrKlKtqa1r0lMNBrU/u27eftNUxvQtP3OzYRi2nC8hiOZtl1QcLVCvM24OojWqeWEe0mLYMKI2Qt7nsex3o1xVMD/dTjxQ/qvjoC9IUqFFWKXFkTJ9rPE77o7Fd23DP7qaadGsr1VIXLtI23Fs2U607jYzhTDakeubSOIaF5+rqiL1bPoDx4CED5Zna+mK6rNKmWyFtcM92eszXX9Y6/QVLaerkvAU6HbKtk6ZKqgLTZC0dc3FkkF6vuhYdW8OyBsEf1imqTol+6SK3g0Zpc8EIlTHr6nTcgsPGVsM8Ghj+eWQL/r9+9Shp+/ADnYb72c9dSdqaWqn9/EFUtbmli9q0m4GJP1pwVmrRYBU60aWNN9DvPLuLWj63t2g76L1bafpqMa/vi8+guCMAgK55C8j6nHN0/EqYpZLmkfX6Sy/+N2l78cUXveVYE7W4v/EbNP35azd+1VtWLr1nD/bt9pZzY8OkLeSjYySIgpoyRdp3CgVDlcV8sPUAul519bSfwyjOo1iksSJFFjtSCRPHPLD70rJoPxvYIoD9H9lEz1iTpZmW2Qmg6DGeIou3NbhNe4nGUYyN6njCfIbGPzQ06HvP5cEQyBtelfnE0+9l+fV6Pseq0aLYGv4bmGcxH7har8li03A3F/I0NTubpt/LzuqNR8ZoOjo0TDyVfjxk5kMQBEEQhKoiLx+CIAiCIFQVefkQBEEQBKGqTLmYj29+8+tkfXhEa6KjIwnSlmEeHImEbuel6JMoj3nJ+dR6PZPJsHWt+6bS1FskndZt2QzVcjNonYUpQIbnUaf1tslRapk+hGNAmOaZKVL9T9k6NiFv0++RzGqPgJbWOGlraqQxIPmM9k0I+pkjbURvu+Kz15Cmb914C1nvaKUW4uMR4Hn/vIw0khxZmADRoYt5qkkf2E2t8y9der63vPxq6p2R9emDpJkVssPy8Bddvkwf43dPk7Z4Q9xbbmmnNvoh1JfKodfOYhr1e++86y1v30Gtzr/zPd3PPYup50a+SLXd+Yu1p8vSz3yGtKWTCW/ZZAEq3fNo/M4oim3JMJv/cHzittsOktsN5n0QqdXxBk0tLaStB9mgAwDMma1LAuTTdKxHa3S80zXXXU/aGllpgxLS5ot5up8ssjO3gF6vVELHVymTts2eSeNl/OjadnbQtgsv1J4/b26gnjrFIn2mBFFJex+zdHeQxwRPVPSxB1C0VvcPt1DH8SIlh/qnKO6LXoGAoWNJyuIfWKyEgez5LWb0YSK/DofdM8US7Z9CUcfyOSXuh6Hv6RKL3Rvqp/5EpZwe36OD/aQNe6aEIrTMAI4dMZllejhIxzrOJs2zeIzmFu0b08xir5IZuu3QkI7PcJkJUhHFBGZz9FrazLMlENDW/n7mLVIE+vz7JMjMhyAIgiAIVUVePgRBEARBqCpTTnY5byFNi3PQnK3BKhrySqQ4TcxlqVU4RbZQoNNzQ6wy67Fjenr16NFDpG0AyTkf7tlH2vbt09sWWfpuUx2d6sQVDhvq4qQtE9FT9UWg08IBg8oDkVq933CYWiMX0HT8jq17SFvRpvs5Nqi/l6OoRLRkiZ7mv+mmvyJt83qozOI4E0vROvBBL1m32bRoHXLMNdl1T43p80skRkjb4P7dZD06b7a3vOXNP9NjOnoaNMembEMWTWeNIrvohiA9n1073veWfczvvYCmPhsaaXrmjp07yPobr/3FW778is+StgWL5ul9Fuj14fbURlDbZffMpymye7brFPS8TadlO2bQa1mDUgPBZRUy3YmnYOL/A/GyA4GgHrOxhmbSNnMOlYGidXrKu2sufU5ccL6W1zpn02rBPP/ZRnbvuQyVk3JJ/SxoaaD27suW6jTyJRdeRNo6mum1TaDSAs0NtHLt127U0nIjszN/5cXnyHoA2ciHfEyqxI84JrMEmX04dqCO18dJGy5LgaUKAIBcjll0V8BAz1jXZemhbL3koPudHdNEz/xCgUoONhv7JVefn8vTgku6TwqsLMXoUSqthJDUE2Q3VB6lqIbDdExgKZXLqsT6HQCG0JgIBKjF/Wcu1Xb8tez3YPtO+kwbGk54y2kmP7pE+qHP4pZmWhJg6bKl3jKXOLf3U9n3kyAzH4IgCIIgVBV5+RAEQRAEoarIy4cgCIIgCFVlysV8VCpup1gqk8nsa8NhraNxe2EcO8Iya6GRafG1qGx8V+ds0ua6OF2K6qF5ZPFcYmlxQ2NjZH0kobXlnv/5bdI2eFTHZySzNGXYsejJd87SevKsWVSzx9r2yCiNazFYCl06NRctU+3yvHMWestNM6iuum/gdbJeF6XpkuOhRneSdR+7tkVba9Z+Vp67ztSW8/sOvE/aWmrokO9s0J81WSxLNKr1dpe/pysW44BibS6aT7/jsYROB68p0hgUP0rNLpZo25Gtb5L1C2brmIfzZtCUvswBbRvvsHgmi587slyOFpl9d0mPg7G9b5O2SA2NP2gO6D5QaZa2lzkMEwXr0LzMOE4r7GZW/fVNtJ9bmnT/zGRxHa0oVTEQoSUJiiyeyERpnn7mlt2ELN4/f/UVpO3CpTpFvzZGY7hqwlTDD6DYliDT9+f26O9ZG6Zp7YkktbkubdLp14EEHb9HkfWAv4Z+54aWJrLeOqNNnytKuwWgMR88/Vqpif//NZXc5y3bRfqcKrJ08GJJr7s2fRZZJd13ipW3Vyz9GdB9ydP1DRTzUSzQ/eByGx+dj95PuJbZz9doq4GW1jbS5kf2DskU+2FhMRe45EZTC91PIKSv37Fh+pzYd+AgWc+g35loHbVMaES2/21t9Bg9PT1kvalJjxH+e3kykJkPQRAEQRCqirx8CIIgCIJQVaac7MJdH3F6LZ8Z4hINXncqVGOMsCnKMJv6LKHqo3aeVSIt6qnoeD2dpjYtLMnQaWpzkMouRVO3NzXQKdyGLu3kODjCnD+DdEowGEXnF6Vpg9F6fflbZ9OqrcEAlTJcpacEM1k6Te1HU8jDBSqXKIf2z3BhYu+7Nf7xqwUDAPhRdc8gS23NIufW1kY6hdzQQCW0iKn3E4tTKcNx9LUssGlhg6Xb4Wzfxno2xR3T6/YYrXhrIQmvWKJ9vnA+vSZYRhw8RNNwg0hKcdn0corJf36UZsl9SOe06z7IHvuQtNnDrIIorkzK7rUwkRlo+iHHj1x665voWMcOp1aApoeGmDzQ1qllxdowvQY+nBrNnxMGnarH7prBEJNLLJQuqujY9kf094w3UFmjtpZOf5skVZs9hpGU0TGHpkL/1U03kfWZc/VU+d69faTtj3/SabklluJdh1x3AQCskB4/Dhs/PiSFRSL0WvKKqpUYHtYpoQ5LzVasL7FtsekG2Lb42rL7kDmluq6+li57huB+5tVfO2ZTCaJxhr4ONqvsi48ZZPspomvbqipfg5ZWLSNGWdVqH3IY9bO2q1Z8jqwH0TWqY/dIDbovLIvfz/T8sAuty2Tvk4HMfAiCIAiCUFXk5UMQBEEQhKoiLx+CIAiCIFSVKRfz4aoSW0ea38QLLJbFjmDK0ooMqo35Uf6dz8cs3JGFbt5OkLbR5GG0XZq02YrGAgxltD66aQdNWxxN6vRIV9FYETBZPEaN1gcjTCsMo4qq9dE4aatj6WSHB7Q1vLKoPjujXacxxuuo1l4ToTq9Q9Iaqa00Jp2mMRb80ipUybGGhRTkUdpcQ2OctFlM+8bXi1vu51CsBMvaBovpoyEU42BZVKMuFPQYwTFBAAAlZNueYxVUgxGqH2dRleZ8ivZPMKiPX2SVjX0+eg1c0Os4fgkAoKZWX79QiHZsKknHbAjFAqSYjXMJx/pYJ4j5QNU9CyUan+Ii7b82RvVrl8XdKHRPc/2a3O/s/vax9F7L0H3gFugxSijF2s/6pyagzy8SoTEewRA9dxzz4fK0fySvGwY9fs9iWnG7rUPHBe3ctp20vb9VW2DvOLCPtA2O0NT6sYKOMaurpd8rimIILDaWQkFW4boCDrFCZ9fHoPulWOOuGkA/Z5r0fII+HTMU8NP4HcOPUqp5bE+YXi+w9BhxWOyGgcc6iyVsQuUTFrAxyVO+gyimyVcWr4iWebozs2lXOACNxe/gW4b/znHrfBwcZZ78TFuZ+RAEQRAEobrIy4cgCIIgCFVFXj4EQRAEQagqUy7mw2BJ+tgGnPsbKGB2ukgLU4ruB8eOmCewknVQufB09ghpy+Z1WWSb2WXnHd3mALVC9oWpZt7Ups/VZm4M0ZzWI4Mh6iWiTBpTEIpp34YQK/cMRf2dbebdkS4MknUjoL9zUzMtbR5v0vq2yeyOk1kaJ1C0WT7/OBw5TPs1FKbf00b2x7EY82nwaU00b9P3a57rH63TsS3ce8VGHgbNrCR6sUi/h41iWZwS934ZvyS5D51rkX2uUKLfC3tO1MepXmygoBRu6x9mnhdY602l6DjE5+o6dEyOjlJr7wgq9x5gvjAktoVJ9pxQrd6ggfmyzJytLaBNH712Y2P0/sKxHP4gPR/DVcfdDgDAz/xDsOWEw8Yzjv1RPhonUEKxAIaPxUKYLKYBeePwMhCmX687intK0G2b2ju8ZT+zaT9nkY4P2bqfeoDwGJ20rcevnWVW53F9LWOsnLufxVFUwrD0s8hgcQo8TspCMTEm96Pw68/62TXws/iiAIrDCQaZ75IfjQnucWHS88NxHj4WA+hDvzM+9psTiSFfGKA4zDtDoZgzxXxQsPcM/+3iYBt5bimPI0nKfU9YnAneukJZk0+KzHwIgiAIglBVJvXy8cgjj8CSJUugrq4O6urq4NJLL4U//elPXrtSCtasWQMdHR0QDodhxYoVsG3btpN+0oIgCIIgTF0mJbt0dnbCAw88APPmzQMAgMcffxy++tWvwubNm2HhwoXwi1/8Ah588EF47LHHYP78+XD//ffDNddcAzt37oRoNHqCvU8MVaLTP7iKbNn0JZ9KAzx1xdKlKlbLpeu4AmMiSeWJbF6vuwadxi/gSo4mnVLnUk9zXPdXY4xNm6NUVwV0ir2kmHzi5tG29Iv4LD01bBr0GAVmm+w4OGWXTm2GgnqK1Cmx6UqHT3/rKcvdMD58RhBLZgAAPlTJNpuj08T1jdqiu7wKMkudRNIGPwa2Fz46QKsH85TvRmQLHmJpezi917b58fV+2tvbaZvDxiie7i2vJaA/V6RtuQw91zyaYs/l6PhxSnqM8rTkZJKVAEDSSl0dtabHEqhxgpn5aJ0eM+Fa2j+pjO73w4fp2J7R2kHWozg9UjGtxxzfHppP62O51gjS+wJXBDaYTIbHrOXj6Y8W21Z/T571b2F5mNuFs/8vumg6PsIq6S5YtMRbDr34EmnLsftblfS1zLBnrIl+JgyWElsbYSmpFQg3zPaWy9KbWQqvH61zSQanKRPb/OOs43uG3980+5rJ+eb4vx0comwwScTC153JLAaX/vExDP47p8da2blW+u1i0wvYOt9lQhC3UMfrhnvyc20nNfNx/fXXw5e+9CWYP38+zJ8/H37+859DbW0tvPHGG6CUgoceegjuu+8+uPHGG2HRokXw+OOPQzabhSeeeOKkn7ggCIIgCFOTTxzz4TgOPPnkk5DJZODSSy+Fvr4+GBgYgJUrV3rbBINBuOqqq2Djxo3j7se2bUgmk+SfIAiCIAhnL5N++diyZQvU1tZCMBiE2267DX73u9/BeeedBwMDHzl0tra2ku1bW1u9tuOxbt06iMVi3r+urq7JnpIgCIIgCFOISafannPOOdDb2wuJRAKeeuopuPXWW2HDhg1eO9ejlFLlduWIe++9F1avXu2tJ5PJii8gw0PHyLqFyoP7/fTrBIJMR/Tj9Demm1U4R5N5ywYDWgduRjomAIACrdsXHRqLYBf0rE6hQONB8kWqp9tFvW0mS2eDVFFr3wqoJm0qquGbTsJbztk0vc6x9H78ATYUmNW4ndcps06R7geiWu/HNt8AAAF2TXiq4Hg0Mv0a26ADANTX6/TeRIKmgGZS+vwMk34PfplDKEVUsRiLfE7HShwdpKm/dTEawzQXlTaPxWkbjjsZOkbH76HD2jo/ldxD2vxMBw+jVGmTW6Yj/bjELJ5tpu/HYzpt2M5RnTeZ1mMtzOzda2tpurGBYqqGEjRlN1KjxyWLmigDx5YUizSuYzSh02nrauiYaG9rI+sBfH+z64zjOnhKPpPXwUD21Tx2A8cMGazMAI4LME1e2p0eE8f68DYTx8ucMO0fnQ875qzZ3d5yWxuNJ9p38AA9P0fvpwh0/GRR6i3/Xtz6oBLh2ri3bPlYuqrFY0B0u8niTLCleln8A4vfIc1loRF63PF4wbL9VviaOA2Xx9WRz/HMVva7YqJ72OEpshVK2pedO/psie3HJec3vt0EAB0TpyLVdtIvH4FAwAs4XbZsGbz99tvwT//0T3D33XcDAMDAwAAJnBscHCybDcEEg0EITqI+gCAIgiAIU5tP7fOhlALbtqG7uxva2tpg/fr1XluhUIANGzbAZZdd9mkPIwiCIAjCWcKkZj5+8pOfwLXXXgtdXV2QSqXgySefhFdeeQWee+45MAwDVq1aBWvXroWenh7o6emBtWvXQiQSgZtuuulUnb8gCIIgCFOMSb18HD16FG6++Wbo7++HWCwGS5Ysgeeeew6uueYaAAC46667IJfLwe233w6jo6OwfPlyeP7550+axwcAwIEj+8l6GJUyb6inmrRpxsm6349zvpnexmumVwDHjvh8VEvFfh0KuJU48mJweGl1Fo9R0jEWvMx4qaQ1WJvFjuTyND4kpxLe8miCelWMpXRZbYf5Pbgu9/lAGnWB6ogZFI9RDHL7cLLKfALGl+PGWMnvSJR6i+Rzun94Tn4WWUcHw1QD9vvptoNHkU+LQeU/bDWe514i9dTXoq9P21eHw3Q/gcD4siLWVXM5akVvukx7D+noicYWOu5CyG9BKRp3k0r2k/XBQeRFw+JcsLRr5+kYTWfo2PKj72mz8YxHfrgRKmKhOAJuHV1bo/v5gvOXkrbu2XPpflDcgFGmveM4CmBt/FmA4g2YLu+iWI2yZ4ZhjdtmcS8R1NHci4bEgDCvIh56UO5jo6mt1WNi1syZpG2Qxc5l8np8c+0f+7lks/R5M5nnJvbgKPNkKoslQXEUPFYC25lbJ/DuJ94ZvGUy3hXjb4uv7fFiHj+mrPwHv+7EV4Md3Zh4fAo5jsu9aJD1OrdT57btuM7AyQ/5mNzLx69//euK7YZhwJo1a2DNmjWf5pwEQRAEQTiLkdougiAIgiBUlSlX1TZdoGmVgYieli25dLrZzlNbXh+qNOmwKSc8leX3swqUFaHzY46LZRc+BYfaXDoV7zN4WrD+XpEQf0fUx3TY1LzDUlIdpddLzVQ6yOPU3yJNlUylaT8fGtyn2/K0LYjeYe0USxl26TGNCb7ulljKZZZl99oJPSUYjcVJWwytm77Kqbb5nJ5GDrJKqC2tunpvJEFvlZpaev1yed1/pRI994Z6rTtEaqh8hKc+0ykqu7Q0N5F1B42ndJr2a01MHyOfo8dXLu10nJrcylIwCwUtv5VYSrXPpGMNHH0+dcxmu5ZZ8FfCRHJJIEA/d878hd7ysqWfIW3xOJVZwcXyzfjVk8sqY1dIqyyfmtb3nmlWtgivdAy8X8fhYxQ9J7gkxPeDHj9cAQmiNPKgn47tCK8SXUTSKes7PI1v22xsTSIFE1dttpiswNQBME2UQlwmk+Fl1h/At8Xpz+OnlvJndfl+1bht+LeDW6ZTeY2lvbp8bKFjsHkBv8867nYf7YfvVy9XsjZw2W8Hl11oFXipaisIgiAIwhRHXj4EQRAEQagq8vIhCIIgCEJVMdSpEHM+BclkEmKxGNxzzz3ifCoIgiAIUwTbtuGBBx6AsbExqKurq7itzHwIgiAIglBV5OVDEARBEISqIi8fgiAIgiBUFXn5EARBEAShqsjLhyAIgiAIVeWMczj9OPmGO+kJgiAIgnDm8vHv9kSSaM+4VNtDhw5BV1fX6T4NQRAEQRA+AQcPHoTOzs6K25xxLx+u68KRI0dAKQUzZ86EgwcPnjBfeDqSTCahq6tL+mccpH8qI/1TGemfykj/VGa69o9SClKpFHR0dJCaN8fjjJNdTNOEzs5OSCY/KnpWV1c3rS7eZJH+qYz0T2Wkfyoj/VMZ6Z/KTMf+icViE9pOAk4FQRAEQagq8vIhCIIgCEJVOWNfPoLBIPz0pz+V+i7jIP1TGemfykj/VEb6pzLSP5WR/jkxZ1zAqSAIgiAIZzdn7MyHIAiCIAhnJ/LyIQiCIAhCVZGXD0EQBEEQqoq8fAiCIAiCUFXk5UMQBEEQhKpyxr58PPzww9Dd3Q2hUAiWLl0Kf/7zn0/3KVWddevWwcUXXwzRaBRaWlrghhtugJ07d5JtlFKwZs0a6OjogHA4DCtWrIBt27adpjM+vaxbtw4Mw4BVq1Z5f5vu/XP48GH47ne/C42NjRCJROCCCy6ATZs2ee3TuX9KpRL8/d//PXR3d0M4HIY5c+bAz372M3Bd19tmOvXPq6++Ctdffz10dHSAYRjw+9//nrRPpC9s24Yf/ehH0NTUBDU1NfCVr3wFDh06VMVvceqo1D/FYhHuvvtuWLx4MdTU1EBHRwfccsstcOTIEbKPs7l/Jo06A3nyySeV3+9Xv/rVr9T27dvVnXfeqWpqatT+/ftP96lVlS9+8Yvq0UcfVVu3blW9vb3quuuuUzNnzlTpdNrb5oEHHlDRaFQ99dRTasuWLeqb3/ymam9vV8lk8jSeefV566231OzZs9WSJUvUnXfe6f19OvfPyMiImjVrlvre976n3nzzTdXX16deeOEFtWfPHm+b6dw/999/v2psbFR//OMfVV9fn/qP//gPVVtbqx566CFvm+nUP88++6y677771FNPPaUAQP3ud78j7RPpi9tuu03NmDFDrV+/Xr377rvq6quvVueff74qlUpV/jYnn0r9k0gk1Be+8AX129/+Vu3YsUO9/vrravny5Wrp0qVkH2dz/0yWM/Ll45JLLlG33XYb+duCBQvUPffcc5rO6MxgcHBQAYDasGGDUkop13VVW1ubeuCBB7xt8vm8isVi6l//9V9P12lWnVQqpXp6etT69evVVVdd5b18TPf+ufvuu9UVV1wxbvt075/rrrtO/fVf/zX524033qi++93vKqWmd//wH9eJ9EUikVB+v189+eST3jaHDx9Wpmmq5557rmrnXg2O93LGeeuttxQAeP9pnk79MxHOONmlUCjApk2bYOXKleTvK1euhI0bN56mszozGBsbAwCAhoYGAADo6+uDgYEB0lfBYBCuuuqqadVXP/zhD+G6666DL3zhC+Tv071/nnnmGVi2bBl8/etfh5aWFrjwwgvhV7/6ldc+3fvniiuugBdffBF27doFAADvvfcevPbaa/ClL30JAKR/MBPpi02bNkGxWCTbdHR0wKJFi6ZdfwF89Lw2DAPi8TgASP9wzriqtkNDQ+A4DrS2tpK/t7a2wsDAwGk6q9OPUgpWr14NV1xxBSxatAgAwOuP4/XV/v37q36Op4Mnn3wS3n33XXj77bfL2qZ7/+zduxceeeQRWL16NfzkJz+Bt956C/72b/8WgsEg3HLLLdO+f+6++24YGxuDBQsWgGVZ4DgO/PznP4dvf/vbACDjBzORvhgYGIBAIAD19fVl20y3Z3c+n4d77rkHbrrpJq+qrfQP5Yx7+fgYwzDIulKq7G/TiTvuuAPef/99eO2118rapmtfHTx4EO688054/vnnIRQKjbvddO0f13Vh2bJlsHbtWgAAuPDCC2Hbtm3wyCOPwC233OJtN13757e//S385je/gSeeeAIWLlwIvb29sGrVKujo6IBbb73V22669s/x+CR9Md36q1gswre+9S1wXRcefvjhE24/3frnY8442aWpqQksyyp7ExwcHCx7654u/OhHP4JnnnkGXn75Zejs7PT+3tbWBgAwbftq06ZNMDg4CEuXLgWfzwc+nw82bNgA//zP/ww+n8/rg+naP+3t7XDeeeeRv5177rlw4MABAJDx83d/93dwzz33wLe+9S1YvHgx3HzzzfDjH/8Y1q1bBwDSP5iJ9EVbWxsUCgUYHR0dd5uznWKxCN/4xjegr68P1q9f7816AEj/cM64l49AIABLly6F9evXk7+vX78eLrvsstN0VqcHpRTccccd8PTTT8NLL70E3d3dpL27uxva2tpIXxUKBdiwYcO06KvPf/7zsGXLFujt7fX+LVu2DL7zne9Ab28vzJkzZ1r3z+WXX16Wmr1r1y6YNWsWAMj4yWazYJr0EWhZlpdqO937BzORvli6dCn4/X6yTX9/P2zdunVa9NfHLx67d++GF154ARobG0n7dO+fMk5XpGslPk61/fWvf622b9+uVq1apWpqatS+fftO96lVlb/5m79RsVhMvfLKK6q/v9/7l81mvW0eeOABFYvF1NNPP622bNmivv3tb5+1qYATAWe7KDW9++ett95SPp9P/fznP1e7d+9W//7v/64ikYj6zW9+420znfvn1ltvVTNmzPBSbZ9++mnV1NSk7rrrLm+b6dQ/qVRKbd68WW3evFkBgHrwwQfV5s2bvWyNifTFbbfdpjo7O9ULL7yg3n33XfW5z33urEklrdQ/xWJRfeUrX1GdnZ2qt7eXPK9t2/b2cTb3z2Q5I18+lFLqX/7lX9SsWbNUIBBQF110kZdeOp0AgOP+e/TRR71tXNdVP/3pT1VbW5sKBoPqyiuvVFu2bDl9J32a4S8f071//vCHP6hFixapYDCoFixYoH75y1+S9uncP8lkUt15551q5syZKhQKqTlz5qj77ruP/FhMp/55+eWXj/u8ufXWW5VSE+uLXC6n7rjjDtXQ0KDC4bD68pe/rA4cOHAavs3Jp1L/9PX1jfu8fvnll719nM39M1kMpZSq3jyLIAiCIAjTnTMu5kMQBEEQhLMbefkQBEEQBKGqyMuHIAiCIAhVRV4+BEEQBEGoKvLyIQiCIAhCVZGXD0EQBEEQqoq8fAiCIAiCUFXk5UMQBEEQhKoiLx+CIAiCIFQVefkQBEEQBKGqyMuHIAiCIAhV5f8DrTTXkOBbftgAAAAASUVORK5CYII="
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 13
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
